home *** CD-ROM | disk | FTP | other *** search
/ Amiga Plus 1996 #6 / Amiga Plus CD - 1996 - No. 06.iso / pd / programmierung / proasm / routines / conio.r < prev    next >
Text File  |  1994-12-11  |  14KB  |  797 lines

  1.  
  2. ;---;  conio.r  ;----------------------------------------------------------
  3. *
  4. *    ****    CONSOLE WINDOW INPUT/OUTPUT    ****
  5. *
  6. *    Author        Stefan Walter
  7. *    Version        1.02
  8. *    Last Revision    06.05.93
  9. *    Identifier    cio_defined
  10. *    Prefix        cio_    (Console IO)
  11. *                 ¯       ¯¯
  12. *    Functions    ConPrint, ConPrintRaw, (ConRead), SetConHandles
  13. *            (GetCLIHandles), (GetPageDim), (ConPagePrint)
  14. *            (NewCIOPage), (SetCIOConMode), (TestCTRLC)
  15. *
  16. *    Flags        cio_OUTPUTONLY set 1 if ConRead not needed
  17. *            cio_CLI set 1 if GetCLIHandles also needed
  18. *            cio_NORAW set 1 if no RAW output
  19. *            cio_PAGETOO set 1 if page print routines also needed 
  20. *            cio_CONMODE set 1 if CON/RAW switching too
  21. *            cio_CTRLTOO set 1 if CTRL-? test too
  22. *
  23. ;------------------------------------------------------------------------------
  24. *
  25. * All functions in here are basically for console output. I/O to files
  26. * is also possible, if a read/write error occurs, the cio_error flag
  27. * is set. This can be checked afterwards.
  28. *
  29. ;------------------------------------------------------------------------------
  30.  
  31. ;------------------
  32.     ifnd    cio_defined
  33. cio_defined    =1
  34.  
  35.     ifd    cio_PAGETOO
  36. cio_CONMODE    set    1
  37. cio_CTRL    set    1
  38.     endif
  39.  
  40. ;------------------
  41. cio_oldbase    equ __base
  42.     base    cio_base
  43. cio_base:
  44.  
  45. ;------------------
  46.  
  47. ;------------------------------------------------------------------------------
  48. *
  49. * ConPrint    Smart print routine. Prints zeroterminated text by
  50. *        sending it line by line, replacing certain special
  51. *        chars by ANSI control sequences. Text is sent to handler
  52. *        that had to be set by SetConHandle.
  53. *
  54. *        Supportet control chars:
  55. *
  56. *        $01        set FG color to 1
  57. *        $02        set FG color to 2
  58. *        $03        set FG color to 3
  59. *        $04        fat text        
  60. *        $05        underline
  61. *        $06        italics
  62. *        $07        normal
  63. *        $0800        set BG color to 0
  64. *        $0801        set BG color to 1
  65. *        $0802        set BG color to 2
  66. *        $0803        set BG color to 3
  67. *        $08f8        set FG color to 0
  68. *        $09        TAB (fill up with spaces for 2.0)
  69. *
  70. * Tabs only work right if ConPrint begins a new line!
  71. *
  72. * INPUT:    a0    Text
  73. *
  74. ;------------------------------------------------------------------------------
  75.  
  76. ;------------------
  77. ConPrint:
  78.  
  79. ;------------------
  80. ; Start:
  81. ;
  82. \start:
  83.     movem.l    d0-a6,-(sp)
  84.     moveq    #0,d7
  85.     tst.b    (a0)        
  86.     beq.s    \done
  87.     move.l    a0,a4
  88.     bsr    \setlinestart
  89.  
  90. ;------------------
  91. ; Char loop.
  92. ;
  93. \charloop:
  94.     moveq    #0,d0
  95.     move.b    (a4)+,d0
  96.     beq.s    \printanddone
  97.     cmp.b    #$a,d0
  98.     beq.s    \printline
  99.     cmp.b    #$9,d0
  100.     beq.s    \tab
  101.     cmp.b    #8,d0
  102.     bhi.s    \copy
  103.     bne.s    \copya
  104.     add.b    (a4)+,d0
  105.  
  106. ;------------------
  107. ; Copy controll sequence
  108. ;
  109. \copya:
  110.     move.b    cio_ansimode(pc),d1
  111.     beq.s    \charloop
  112.     lsl.w    #2,d0
  113.     lea    cio_ansitexts(pc),a1
  114.     add.w    d0,a1
  115.     move.b    #$9b,(a3)+
  116.     bra.s    \nextansi
  117.  
  118. \ansiloop:
  119.     move.b    (a1)+,(a3)+
  120. \nextansi:
  121.     dbra    d6,\noprint
  122.     bsr    \print
  123.  
  124. \noprint:
  125.     tst.b    (a1)
  126.     bne.s    \ansiloop
  127.     bra.s    \charloop
  128.  
  129. ;------------------
  130. ; Tab.
  131. ;
  132. \tab:
  133.     move.w    d7,d1
  134.     addq.w    #8,d7
  135.     and.w    #$fff8,d7
  136.     move.w    d7,d0
  137.     sub.w    d1,d0
  138.  
  139. \loopa:
  140.     move.b    #" ",(a3)+
  141.     dbra    d6,\notab
  142.     bsr    \print
  143.  
  144. \notab:
  145.     subq.w    #1,d0
  146.     bne.s    \loopa
  147.     bra.s    \charloop
  148.     
  149. ;------------------
  150. ; Copy a char.
  151. ;
  152. \copy:
  153.     addq.w    #1,d7
  154.     move.b    d0,(a3)+
  155.     dbra    d6,\charloop    
  156.  
  157. \sub:
  158.     bsr    \print
  159.     bra.s    \charloop
  160.  
  161. ;------------------
  162. ; Prints.
  163. ;
  164. \printline:
  165.     move.b    d0,(a3)+
  166.     bra.s    \sub
  167.  
  168. \printanddone:
  169.     bsr    \print
  170.     
  171. ;------------------
  172. ; Done
  173. ;
  174. \done:
  175.     movem.l    (sp)+,d0-a6
  176.     rts
  177.  
  178. ;------------------
  179. ; Print line terminated by a3.
  180. ;
  181. \print:
  182.     moveq    #0,d7
  183.     move.l    cio_conout(pc),d1
  184.     bsr    OpenDosLib
  185.     move.l    a3,d3
  186.     pea    cio_printbuffer(pc)
  187.     move.l    (sp)+,d2
  188.     sub.l    d2,d3
  189.     move.l    d3,-(sp)
  190.     jsr    -48(a6)            ;Write()
  191.     cmp.l    (sp)+,d0
  192.     lea    cio_error(pc),a0
  193.     sne    (a0)
  194.     bsr    CloseDosLib
  195.  
  196. \setlinestart:
  197.     lea    cio_printbuffer(pc),a3
  198.     move.w    #199,d6
  199.     rts
  200.  
  201. ;------------------
  202.  
  203. ;------------------------------------------------------------------------------
  204. *
  205. * ConPrintRaw    Smart print routine. First runs text through RawDoFmt.
  206. *        Then text goes to ConPrint.
  207. *
  208. * INPUT:    a0    Buffer
  209. *        a1    Data
  210. *
  211. ;------------------------------------------------------------------------------
  212.  
  213. ;------------------
  214. ConPrintRaw:
  215.  
  216. ;------------------
  217. ; Start:
  218. ;
  219. \start:
  220.     movem.l    d0-a6,-(sp)
  221.     lea    cio_error(pc),a2
  222.     clr.b    (a2)
  223.     lea    cio_rawbuffer(pc),a3
  224.     lea    \setin(pc),a2
  225.     move.l    4.w,a6
  226.     jsr    -522(a6)        ;RawDoFmt()
  227.     movem.l    (sp)+,d0-a6
  228.     rts
  229.  
  230. ;------------------
  231. ; Fill-in routine.
  232. ;
  233. \setin:
  234.     movem.l    d0/a0/a1,-(sp)
  235.     lea    cio_rawbuffer+200(pc),a1
  236.     move.b    d0,(a3)+
  237.     beq.s    \print
  238.     cmp.l    a3,a1
  239.     bhi.s    \okay
  240.  
  241. \print:
  242.     clr.b    (a3)
  243.     lea    cio_rawbuffer(pc),a3
  244.     lea    cio_error(pc),a0
  245.     tst.b    (a0)        ;error...
  246.     bne.s    \okay
  247.     move.l    a3,a0
  248.  
  249.     ifd    cio_PAGETOO
  250.     move.b    cio_rawpages(pc),d0
  251.     beq.s    \np
  252.     bsr    ConPagePrint
  253.     bra.s    \okay
  254.     endif
  255.  
  256. \np:    bsr    ConPrint
  257.     
  258. \okay:    movem.l    (sp)+,a0/a1/d0
  259.     rts
  260.  
  261. ;------------------
  262.     ifnd    cio_OUTPUTONLY
  263.  
  264. ;------------------
  265.     
  266. ;------------------------------------------------------------------------------
  267. *
  268. * ConRead    Smart read routine. Will read zeroterminated text to a
  269. *        200 bytes text buffer (zero byte not included in 200 bytes
  270. *        => 202 bytes buffer allocation neccessary).
  271. *
  272. * RESULT:    a0    Buffer
  273. *        d0    Length (excluding zero byte)
  274. *
  275. ;------------------------------------------------------------------------------
  276.  
  277. ;------------------
  278. ConRead:
  279.  
  280. ;------------------
  281. ; Start.
  282. ;
  283. \start:
  284.     movem.l    d1-d7/a1-a6,-(sp)
  285.     lea    cio_readbuffer(pc),a4
  286.  
  287. \loop:
  288.     move.l    cio_conin(pc),d1
  289.     move.l    a4,d2        
  290.     moveq    #1,d3
  291.     bsr    OpenDosLib
  292.     jsr    -42(a6)            ;Read()
  293.     bsr    CloseDosLib
  294.     lea    cio_error(pc),a1
  295.     tst.l    d0            ;error or length 0
  296.     smi    (a1)            ;error => set flag
  297.     ble.s    \end
  298.     cmp.b    #$a,(a4)        ;CR
  299.     beq.s    \end
  300.     pea    cio_readbuffer+200(pc)
  301.     cmp.l    (sp)+,a4
  302.     bge.s    \loop            ;a4=200?
  303.     addq.l    #1,a4
  304.     bra.s    \loop
  305.  
  306. \end:
  307.     clr.b    (a4)
  308.     lea    cio_readbuffer(pc),a0
  309.     sub.l    a0,a4
  310.     move.l    a4,d0
  311.     tst.l    d0
  312.     movem.l    (sp)+,d1-d7/a1-a6
  313.     rts
  314.  
  315. ;------------------
  316.     endif
  317.  
  318. ;------------------
  319.  
  320. ;------------------------------------------------------------------------------
  321. *
  322. * SetConHandles    Sets both cio_conin and cio_conout.
  323. *
  324. * INPUT:    d0    Input HD
  325. *        d1    Output HD
  326. *
  327. ;------------------------------------------------------------------------------
  328.  
  329. ;------------------
  330. SetConHandles:
  331.  
  332. ;------------------
  333. ; Set and go.
  334. ;
  335. \set:
  336.     pea    (a0)
  337.     lea    cio_conin(pc),a0
  338.     move.l    d0,(a0)+
  339.     move.l    d1,(a0)
  340.     move.l    (sp)+,a0
  341.     rts
  342.  
  343. ;------------------
  344.     ifd    cio_CLI
  345.  
  346. ;------------------
  347.  
  348. ;------------------------------------------------------------------------------
  349. *
  350. * GetCLIHandles    Get CLI window handles.
  351. *
  352. * RESULT    d0    Output handle or 0 if error
  353. *        ccr    On d0
  354. *
  355. ;------------------------------------------------------------------------------
  356.  
  357. ;------------------
  358. GetCLIHandles:
  359.  
  360. ;------------------
  361. ; Do.
  362. ;
  363. \do:
  364.     movem.l    d1-a6,-(sp)
  365.     moveq    #0,d7
  366.     bsr    OpenDosLib
  367.     beq.s    \done
  368.     jsr    -54(a6)
  369.     lea    cio_conin(pc),a3
  370.     move.l    d0,(a3)+
  371.     beq.s    \close
  372.     jsr    -60(a6)
  373.     move.l    d0,(a3)+
  374.     beq.s    \close
  375.     move.l    d0,d7
  376.  
  377. \close:
  378.     bsr    CloseDosLib
  379.  
  380. \done:
  381.     move.l    d7,d0
  382.     movem.l    (sp)+,d1-a6
  383.     rts
  384.  
  385. ;------------------
  386.     endif
  387.     ifd    cio_PAGETOO
  388.  
  389. ;------------------
  390.  
  391. ;------------------------------------------------------------------------------
  392. *
  393. * GetPageDim    Get window dimension and remember it. The filehandle must be
  394. *        stored in cio_conin, the file must be interactive! The window
  395. *        Pointer is storet in cio_window.
  396. *        
  397. * RESULT    d0    0 if error, window if okay
  398. *        cio_window etc. get set to right values.
  399. *
  400. ;------------------------------------------------------------------------------
  401.  
  402. ;------------------
  403. GetPageDim:
  404.  
  405. ;------------------
  406. ; Start:
  407. ;
  408. \start:    movem.l    d1-a6,-(sp)
  409.     moveq    #0,d7
  410.     bsr    OpenDosLib
  411.     beq    \end
  412.  
  413. ;------------------
  414. ; Allocate infoblock and packet.
  415. ;
  416. \alloc:    bsr    AllocPacket
  417.     beq.s    \closedos
  418.     move.l    d0,d6
  419.  
  420.     move.l    a7,a5
  421.     move.l    a7,d4
  422.     sub.w    #9*4,d4
  423.     and.b    #$fc,d4
  424.     move.l    d4,a7
  425.  
  426. ;------------------
  427. ; Get process and test if it goes.
  428. ;
  429. \getproc:
  430.     move.l    4.w,a6
  431.     move.l    $114(a6),a4
  432.  
  433. ;------------------
  434. ; If it is interactive, send packet.
  435. ;
  436. \inter:    bsr    GetDosBase
  437.     move.l    cio_conin(pc),d1
  438.     jsr    -216(a6)        ;IsInteractive
  439.     tst.l    d0
  440.     beq.s    \freeinfo
  441.     move.l    d6,a0
  442.     moveq    #25,d0
  443.     move.l    d0,8(a0)        ;ACTION_DISK_INFO
  444.     move.l    d4,d0
  445.     lsr.l    #2,d0
  446.     move.l    d0,20(a0)        ;BPTR InfoData
  447.  
  448.     move.l    d6,d1
  449.     move.l    cio_conin(pc),d2
  450.     lsl.l    #2,d2
  451.     move.l    d2,a0
  452.     move.l    8(a0),d2
  453.     mea    $5c(a4),d3
  454.     bsr    SendPacket
  455.     move.l    d3,d0
  456.     bsr    WaitForPacket
  457.  
  458.     move.l    d4,a0
  459.     move.l    28(a0),d7
  460.  
  461.     move.l    d7,a0
  462.     move.l    50(a0),a0
  463.     lea    cio_fonty(pc),a1
  464.     move.l    $3a(a0),(a1)
  465.  
  466. ;------------------
  467. ; Clean up.
  468. ;
  469. \freeinfo:
  470.     move.l    a5,a7
  471.     
  472. \freepacket:
  473.     move.l    d6,d0
  474.     bsr    FreePacket
  475.  
  476. \closedos:
  477.     bsr    CloseDosLib
  478.  
  479. \end:    move.l    d7,d0
  480.     lea    cio_window(pc),a1
  481.     move.l    d7,(a1)
  482.     movem.l    (sp)+,d1-a6
  483.     rts
  484.  
  485. ;------------------
  486.  
  487. ;------------------------------------------------------------------------------
  488. *
  489. * NewCIOPage    Start a new page. This calculates the values for the current
  490. *        window size.
  491. *
  492. ;------------------------------------------------------------------------------
  493.  
  494. ;------------------
  495. NewCIOPage:
  496.  
  497. ;------------------
  498. ; Clear counter and calculate values.
  499. ;
  500. \start:    movem.l    d0-a6,-(sp)
  501.     lea    cio_base(pc),a4
  502.     move.l    cio_window(a4),a0
  503.     moveq    #0,d0
  504.     add.b    $37(a0),d0        ;border top
  505.     add.b    $39(a0),d0        ;border bottom
  506.     neg.w    d0
  507.     add.w    10(a0),d0        ;=> number of lines in window
  508.     moveq    #0,d1
  509.     add.b    $36(a0),d1        ;border right
  510.     add.b    $38(a0),d1        ;border left
  511.     neg.w    d1
  512.     add.w    8(a0),d1        ;=> number of raws in window
  513.  
  514.     divu    cio_fonty(pc),d0
  515. 1$:    move.w    d0,cio_count(a4)
  516.     bne.s    2$
  517.     moveq    #1,d0
  518.     bra.s    1$
  519.  
  520. 2$:    divu    cio_fontx(pc),d1
  521. 3$:    move.w    d1,cio_length(a4)
  522.     bne.s    4$
  523.     moveq    #1,d1
  524.     bra.s    3$
  525.  
  526. 4$:    movem.l    (sp)+,d0-a6
  527.     rts
  528.     
  529. ;------------------
  530.  
  531. ;------------------------------------------------------------------------------
  532. *
  533. * PrintPageLine    Print one line to the window, cut it if neccessary. The text
  534. *        must be only one line, otherwise a good output is not guaranteed.
  535. *        If a page is full, the window goes to RAW mode, requests <SPACE>
  536. *        and goes back to the old mode after calling NewCIOPage
  537. *
  538. * INPUT        a0    text, zeroterminated.
  539. *
  540. ;------------------------------------------------------------------------------
  541.  
  542. ;------------------
  543. ConPagePrint:
  544.  
  545. ;------------------
  546. ; Test if counter goes zero, print the 'press any key to continue', clear
  547. ; it and go to CON mode:
  548. ;
  549. \test:    movem.l    d0-a6,-(sp)
  550.     move.l    a0,a3
  551.     lea    cio_base(pc),a4
  552.  
  553.     subq.w    #1,cio_count(a4)
  554.     bhi.s    \count
  555.  
  556.     moveq    #-1,d0
  557.     bsr    SetCIOConMode
  558.     beq    \count
  559.  
  560.     lea    \request(pc),a0
  561.     bsr    ConPrint
  562.     bsr    OpenDosLib
  563.     beq.s    1$
  564.     move.l    cio_conin(pc),d1
  565.     mea    cio_printbuffer(pc),d2
  566.     moveq    #1,d3
  567.     jsr    -42(a6)            ;Read()
  568.     bsr    CloseDosLib
  569.  
  570. 1$:    lea    \request2(pc),a0
  571.     bsr    ConPrint
  572.     moveq    #0,d0
  573.     bsr    SetCIOConMode
  574.     bsr    NewCIOPage
  575.  
  576.     lea    cio_count(pc),a0
  577.     subq.w    #1,(a0)
  578.  
  579.  
  580. ;------------------
  581. ; Test if line longer than allowed.
  582. ;
  583. \count:    bsr    TestCTRLC
  584.     lea    cio_break(pc),a0
  585.     sne    (a0)
  586.     bne.s    \dono
  587.     move.l    a3,a0
  588.     moveq    #0,d7
  589.     move.w    cio_length(pc),d0
  590.  
  591. \loop:    cmp.b    #$a,(a0)+
  592.     beq.s    \fine
  593.     subq.w    #1,d0
  594.     bne.s    \loop
  595.  
  596.     moveq    #1,d7
  597.     move.b    (a0),d6
  598.     move.b    -(a0),d5
  599.     move.l    a0,a2
  600.     move.b    #$a,(a0)+
  601.     clr.b    (a0)
  602.  
  603. \fine:    move.l    a3,a0
  604.     bsr    ConPrint
  605.     
  606.     tst.b    d7
  607.     beq.s    \dono
  608.     move.b    d5,(a2)+
  609.     move.b    d6,(a2)
  610.  
  611. \dono:    movem.l    (sp)+,d0-a6
  612.     rts
  613.  
  614.  
  615.  
  616. \request:    dc.b    8,1,8,$f8,"<Press any key to continue>",8,0,1
  617.         dc.b    $9b,$30,$20,$70,0
  618.  
  619. \request2:    dc.b    $d,$9b,$20,$70,$9b,$4b,0
  620.     even
  621.  
  622. ;------------------
  623.     endif
  624.     ifd    cio_CONMODE
  625.  
  626. ;------------------
  627.  
  628. ;------------------------------------------------------------------------------
  629. *
  630. * SetCIOConMode    Set mode of window.
  631. *
  632. * INPUT        d0    0:CON  -1:RAW
  633. *
  634. * RESULT    d0    0 if error, else -1
  635. *
  636. ;------------------------------------------------------------------------------
  637.  
  638. ;------------------
  639. SetCIOConMode:
  640.  
  641. ;------------------
  642. ; Do it.
  643. ;
  644. \start:    movem.l    d1-a6,-(sp)
  645.     move.l    d0,d7
  646.     bsr    AllocPacket
  647.     beq.s    \error
  648.     move.l    d0,d6
  649.  
  650.     move.l    4.w,a6
  651.     move.l    $114(a6),a4
  652.     lea    $5c(a4),a4
  653.  
  654.     move.l    d6,a0
  655.     pea    994.w            ;ACTION_SETRAWMODE
  656.     move.l    (sp)+,8(a0)
  657.     move.l    d7,20(a0)        ;BPTR InfoData
  658.  
  659.     move.l    d6,d1
  660.     move.l    cio_conin(pc),d2
  661.     lsl.l    #2,d2
  662.     move.l    d2,a0
  663.     move.l    8(a0),d2
  664.     move.l    a4,d3
  665.     bsr    SendPacket
  666.     move.l    a4,d0
  667.     bsr    WaitForPacket
  668.     move.l    d6,d0
  669.     bsr    FreePacket
  670.     moveq    #-1,d0
  671.  
  672. \exit:    movem.l    (sp)+,d1-a6
  673.     rts
  674.  
  675. \error:    moveq    #0,d0
  676.     bra.s    \exit
  677.  
  678. ;------------------
  679.     endif
  680.     ifd    cio_CTRL
  681.  
  682. ;------------------
  683.  
  684. ;------------------------------------------------------------------------------
  685. *
  686. * TestCTRLC    Test if CTRL-C pressed
  687. *
  688. * RESULT    d0    -1 if pressed, else 0
  689. *        ccr    on d0
  690. *
  691. ;------------------------------------------------------------------------------
  692.  
  693. ;------------------
  694. TestCTRLC:
  695.  
  696. ;------------------
  697. ; Do it.
  698. ;
  699. \start:    movem.l    d1-a6,-(sp)
  700.     move.l    4.w,a6
  701.     moveq    #0,d0
  702.     move.l    #$1000,d1        ;CTRL-C
  703.     move.l    d1,d7
  704.     jsr    -306(a6)        ;SetSignal()
  705.     and.l    d7,d0
  706.     sne    d0
  707.     movem.l    (sp)+,d1-a6
  708.     rts
  709.  
  710. ;------------------
  711.     endif
  712.  
  713. ;------------------
  714.  
  715. ;--------------------------------------------------------------------
  716.  
  717. ;------------------
  718.     include    doslib.r
  719.  
  720.     ifd    cio_CONMODE
  721.     include    packets.r
  722.     endif
  723.  
  724. ;------------------
  725. ; Read.
  726. ;
  727.     ifnd    cio_OUTPUTONLY
  728.     ifd    crp_buffer
  729. cio_readbuffer    equ    crp_buffer
  730.     else
  731. cio_readbuffer:        ds.b    202,0
  732.     endif
  733.     endif
  734.  
  735. ;------------------
  736. ; Write.
  737. ;
  738. cio_printbuffer:    ds.b    200,0
  739.     ifnd    CIO_NORAW
  740. cio_rawbuffer:        ds.b    202,0
  741.     endif
  742.  
  743. ;------------------
  744. ; Handles.
  745. ;
  746. cio_conin:        dc.l    0
  747. cio_conout:        dc.l    0
  748.  
  749. ;------------------
  750. ; Page mode stuff:
  751. ;
  752.     ifd    cio_PAGETOO
  753. cio_window:        dc.l    0
  754. cio_fonty:        dc.w    0
  755. cio_fontx:        dc.w    0
  756. cio_count:        dc.w    0
  757. cio_length:        dc.w    0
  758. cio_rawpages:        dc.b    0    ;set if ConPrintRaw uses PagePrint
  759. cio_break:        dc.b    0    ;set if CTRL-C while paused
  760.     endif
  761.  
  762. ;------------------
  763. ; Flags:
  764. ;
  765. cio_ansimode:    dc.b    -1        ;-1:ansi, 0: no
  766. cio_error:    dc.b    0        ;set if error while ConPrint
  767.  
  768. ;------------------
  769. ; ANSI control texts.
  770. ;
  771. cio_ansitexts:
  772.     dc.b    "30m",0
  773.     dc.b    "31m",0
  774.     dc.b    "32m",0
  775.     dc.b    "33m",0
  776.     dc.b    "1m",0,0
  777.     dc.b    "4m",0,0
  778.     dc.b    "7m",0,0
  779.     dc.b    "0m",0,0
  780.     dc.b    "40m",0
  781.     dc.b    "41m",0
  782.     dc.b    "42m",0
  783.     dc.b    "43m",0
  784.  
  785. ;------------------
  786.  
  787. ;--------------------------------------------------------------------
  788.  
  789. ;------------------
  790.     base    cio_oldbase
  791.  
  792. ;------------------
  793.     endif
  794.  
  795.     end
  796.  
  797.